ちゃんとカテゴリ分けされておりませんので、
記事をお探しならブログ内検索が便利です。
ご活用くださいませー+.(≧∀≦)゚+.゚
ブログ内検索
カレンダー
10 | 2024/11 | 12 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
カテゴリー
最新コメント
[11/22 รูปพวงหรีดแสดงความเสียใจ]
[11/22 ดอกไม้ งานศพ]
[11/22 ช่อดอกไม้ตามสั่ง]
[11/22 ร้านดอกไม้บรรยากาศอบอุ่น]
[11/21 Robertret]
最新記事
(08/22)
(02/19)
(01/16)
(12/29)
(12/28)
最新トラックバック
プロフィール
+ハンドル+
y_ayamori(purple)
+職業+
IT系エンジニア
+すまい+
さいたま
y_ayamori(purple)
+職業+
IT系エンジニア
+すまい+
さいたま
pg_dumpの分割 でも触れましたが、DBのダンプファイルをダンプの時点で分割しておかないとリストアの時結構大変です。
それでも1ファイルでダンプしちゃったなら、前述の方法などで分割するしかないですが、できることならダンプの時点でテーブルごとに分かれているのが理想です。
pg_dumpのオプションでなんとかなればいいのですが、3流エンジニアにはドキュメントを理解する能力がありませんでした。。。
ということで仕方ないので、例によってpythonスクリプトでダンプするためのShellスクリプトを作成し、実行することでテーブルごとにダンプファイルを作成するための簡単なものを作成しました。
確認環境
Python 2.7.3
PostgreSQL 9.3.0
検索タグ
python, postgresql
それでも1ファイルでダンプしちゃったなら、前述の方法などで分割するしかないですが、できることならダンプの時点でテーブルごとに分かれているのが理想です。
pg_dumpのオプションでなんとかなればいいのですが、3流エンジニアにはドキュメントを理解する能力がありませんでした。。。
ということで仕方ないので、例によってpythonスクリプトでダンプするためのShellスクリプトを作成し、実行することでテーブルごとにダンプファイルを作成するための簡単なものを作成しました。
python db_name = 'db_name' output_path = './db_dump' gzip = False import subprocess import os os.mkdir(output_path) if gzip: out_cmd = 'gzip --best -c' ext = '.dmp.gz' else: out_cmd = 'cat' ext = '.dmp' cmd = ['echo', r'\dt'] sp = subprocess.Popen(cmd, stdout=subprocess.PIPE) cmd = ['psql', db_name, '-t'] tp = subprocess.Popen(cmd, stdin=sp.stdout, stdout=subprocess.PIPE) open('pg_dump.sh', 'wb').write('') # initialyze for line in tp.stdout: if not line.strip(): continue table_name = line.split('|')[1].strip() cmd_line = 'pg_dump {0} -t {2} | {3} > {1}/{0}_{2}{4}\n'.format( db_name, output_path, table_name, out_cmd, ext ) open('pg_dump.sh', 'ab').write(cmd_line) exit() # The shell script from here. sh -x ./pg_dump.sh
確認環境
Python 2.7.3
PostgreSQL 9.3.0
検索タグ
python, postgresql
PR
この記事にコメントする